package com.scau402.system1.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.scau402.common.annotation.Excel;
import lombok.Data;
import lombok.ToString;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @author
 * @create 2024/1/3 15:21
 * @description
 */
@Data
@ToString
public class WmsInboundOrderVO {

    /**
     * id
     */
    private Long id;

    /**
     * 入库类型：0=采购入库,1=借货入库,2=还货入库，3=加工入库
     */
    @Excel(name = "入库类型",readConverterExp = "0=采购入库,1=借货入库,2=还货入库，3=加工入库")
    private String orderType;

    /**
     * 入库单编号
     */
    @Excel(name = "入库单号",width = 30)
    private String orderCode;

    /**
     * 订单批次
     */
    @Excel(name = "订单批次")
    private String orderBatch;

    /**
     * 订单日期
     */
    @Excel(name = "订单日期")
    private String orderDate;

    /**
     * 有效期
     */
    @Excel(name = "有效期")
    private String validDate;

    /**
     * 供应商主键ID
     */
    private Long supplierId;

    /**
     * 供应商编号
     */
    private String supplierCode;

    /**
     * 供应商名称
     */
    @Excel(name = "供应商名称")
    private String supplierName;

    /**
     * 供应商性质
     */
    private String supplierType;

    /**
     * 客户ID
     */
    private Long clientId;

    /**
     * 客户编号
     */
    private String clientCode;

    /**
     * 客户名称
     */
    @Excel(name = "客户名")
    private String clientName;

    /**
     * 客户性质
     */
    private String clientType;

    /**
     * 入库仓库主键ID
     */
    private Long warehouseId;

    /**
     * 入库仓库编号
     */
    private String warehouseCode;

    /**
     * 入库仓库名称
     */
    @Excel(name = "入库仓库")
    private String warehouseName;

    /**
     * 入库仓位名称
     */
    @Excel(name = "入库仓位")
    private String storageName;

    /**
     * 加工厂主键ID
     */
    private Long processorId;

    /**
     * 加工厂编号
     */
    private String processorCode;

    /**
     * 加工厂名称
     */
    private String processorName;

    /**
     * 加工厂性质
     */
    private String processorType;

    /**
     * 翡翠数量
     */
    @Excel(name = "翡翠数量")
    private Integer jadeQuantity;

    /**
     * 翡翠总成本价
     */
    @Excel(name = "总成本价")
    private BigDecimal jadeTotalCostPrice;

    /**
     * 还货入库关联出库单主键
     */
    private Long outboundOrderId;

    /**
     * 状态（0启用 1停用）
     */
    private String status;

    /**
     * 删除标志（0代表存在 2代表删除）
     */
    private String delFlag;

    /**
     * 租户ID
     */
    private Long tenantId;

    /**
     * 部门ID
     */
    private Long deptId;

    /**
     * 合并（0未被合并 1被合并 2合并后）
     */
    private String merged;

    /**
     * 还货入库关联出库单号
     */
    private String outboundOrderCode;

    /**
     * 入库单明细列表
     */
    private List<WmsInboundOrderDetailVO> wmsInboundOrderDetailVOList;

    /**
     * 入库人员
     */
    @Excel(name = "入库人员")
    private String createBy;

    /**
     * 入库时间
     */
    @Excel(name = "创建时间",dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     * 备注
     */
    @Excel(name = "备注")
    private String remark;

    /**
     * 总成本价 TODO 为什么又两个总成本价并且类型是Double?
     */
    private Double totalCost;

}
